我们使用JDBC访问数据库时,第一步需要注册驱动以mysql数据库为例 平常我们都是Class.forName("com.mysql.jdbc.Driver"); 有没有人觉得为什么我只做了一个Class.forName的操作,DriverManager就知道这个驱动在哪里 这里都没有引用给DriverManager 其实注册驱动有三种方式 第一种 Class.forName中的参数其实就是驱动类的包名.类名,这个类可以new的 Driver d=new com.mysql.jdbc.Driver(); DriverManager中提供了registDriver方法注册驱动 DriverManager.registerDriver(d); 第二种 就是我们平常用的方式, 那为什么他能注册驱动呢? 原因是Class.forName这个方法会导致一个类被加载 类加载了会自动的执行这个类里的静态代码块 静态代码块中其实写的就是第一种里面的代码 Class.forName("com.mysql.jdbc.Driver"); 第三种 程序中不做注册驱动的事情,在执行java命令运行时,加-D参数让虚拟机加载驱动类,并注册驱动 java -Djdbc.drivers=com.mysql,jdbc.Driver |
jdbc注册驱动三种方式
最新推荐文章于 2024-09-28 09:11:09 发布